package quanlyhochieu.taomoi;
import java.util.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import quanlydoanra.utils.truyXuatDatabase;

import utils.UtilsOnScopes;
import dbutil.ConnectDB;
public class ViTriLuuTru {
	private String stt;
	private int id;
	private String viTriTu;
	private String nganTrongTu;
	private String soHC;
	private boolean trangThaiNhan;
	private String moTa;
	private String error;
	private List<ViTriLuuTru> listViTriLuuTru;
	
	
	public String getStt() {
		return stt;
	}

	public void setStt(String stt) {
		this.stt = stt;
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

	public ViTriLuuTru(){}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getViTriTu() {
		return viTriTu;
	}

	public void setViTriTu(String viTriTu) {
		this.viTriTu = viTriTu;
	}

	public String getNganTrongTu() {
		return nganTrongTu;
	}

	public void setNganTrongTu(String nganTrongTu) {
		this.nganTrongTu = nganTrongTu;
	}

	public String getSoHC() {
		return soHC;
	}

	public void setSoHC(String soHC) {
		this.soHC = soHC;
	}

	public boolean isTrangThaiNhan() {
		return trangThaiNhan;
	}

	public void setTrangThaiNhan(boolean trangThaiNhan) {
		this.trangThaiNhan = trangThaiNhan;
	}

	public String getMoTa() {
		return moTa;
	}

	public void setMoTa(String moTa) {
		this.moTa = moTa;
	}
	
	public boolean distincViTriTu(List<ViTriLuuTru> list, ViTriLuuTru viTriTu){
		boolean result = true;
		for (ViTriLuuTru l : list) {
			if((l.getViTriTu().trim()).equals(viTriTu.getViTriTu().trim()) && l.getNganTrongTu().trim().equals(viTriTu.getNganTrongTu().trim())){
				result = false;
				break;
			}
			
		}
		return result;
	}
	
	public List<ViTriLuuTru> getListViTriLuuTru() {
		int acc = 1;
		List<ViTriLuuTru> list = new ArrayList<ViTriLuuTru>();
		HttpSession ses = UtilsOnScopes.getSession();
		String SQL = "select * from kholuutru order by vitritu";
		System.out.println("SQL "+SQL);
		ArrayList<HashMap<String, Object>> array = ConnectDB.getDataTypeList(SQL);
		if (array.size() > 0) {
			HashMap<String, Object> hash = new HashMap<String, Object>();
			for (int i = 0; i < array.size(); i++) {				
				hash = (HashMap<String, Object>) array.get(i);
				ViTriLuuTru table = new ViTriLuuTru();
				table.setId(Integer.parseInt(hash.get("id").toString()));
				table.setViTriTu(hash.get("vitritu").toString());
				table.setNganTrongTu(hash.get("ngantrongtu").toString());
				String str = hash.get("mota").toString();
				String mota = "";
				if(str == null) mota ="";
				else mota = str;
				table.setMoTa(mota);
				if(this.distincViTriTu(list,table) == true){
				table.setStt(String.valueOf(acc));
				acc+= 1;
				list.add(table);
			}
			}
		}
		System.out.println("size "+list.size());
		this.listViTriLuuTru = list;
		return this.listViTriLuuTru;
	}

	public void setListViTriLuuTru(List<ViTriLuuTru> listViTriLuuTru) {
		this.listViTriLuuTru = listViTriLuuTru;
	}
	
	public String huyTao(){
		this.moTa = null;
		this.nganTrongTu = null;
		this.viTriTu = null;
		this.error = null;
		return "trovetrangthemmoihochieu";
	}
	public boolean checkValue(){
		if(this.viTriTu == null || this.viTriTu.equals("") ||
		   this.nganTrongTu == null || this.nganTrongTu.equals("")){
			this.setError("Bạn phải điền đầy đủ thông tin có dấu (*) phía trước");
			return false;
		}
		else return true;
	}
	public String themTao(){
		String sql = "insert into kholuutru(vitritu,ngantrongtu,mota) values('"+this.viTriTu+"','"+this.nganTrongTu+"','"+this.moTa+"')";
		System.out.println("SQL "+sql);
		if(this.checkValue() == true){
			if(utils.insertData(sql) == 1){
				this.setError("Thêm thành công vị trí lưu trữ");
				this.moTa = null;
				this.nganTrongTu = null;
				this.viTriTu = null;
				System.out.println("Them thanh cong");
				return "not_finish_themvitri";
			}
			else {
				this.setError("Quá trình thêm vị trí bị lỗi");
				return "not_finish_themvitri";
			}
		
		}
		else {
			this.setError("Bạn phải điền đầy đủ thông tin có dấu (*) phía trước");
			return "not_finish_themvitri";
		}
		
	}
	public String xoaViTriLuuTru(){
		HttpServletRequest request = UtilsOnScopes.getRequest();
		String id = request.getParameter("id");
		String STT = request.getParameter("stt");
		if(utils.deleteVitriLuuTru(Integer.parseInt(id))){
			this.setError("Vị trí "+id+ " đã bị xóa khỏi danh sách");
			}
		else {
			this.setError("Quá trình xóa bị lỗi");
			
		}
		return "not_finish_themvitri";
	}
	public String suaViTriLuuTru(){
		HttpServletRequest request = UtilsOnScopes.getRequest();
		String id = request.getParameter("id");
		String strViTriTu = request.getParameter("viTriTu");
		String strNganTrongTu = request.getParameter("nganTrongTu");
		String strMoTa = request.getParameter("moTa");
		this.setViTriTu(strViTriTu);
		this.setNganTrongTu(strNganTrongTu);
		this.setId(Integer.parseInt(id));
		this.setMoTa(strMoTa);
		this.setError("Đang sửa "+strViTriTu);
		return "not_finish_themvitri";
	}
	public String sua(){
		if(this.checkValue()){	
			if(utils.updateViTriTu(this.viTriTu, this.nganTrongTu, this.moTa,this.id)){
			this.setError(this.viTriTu+ " đã được cập nhật thành công");
			}
			else {
			this.setError("Quá trình cập nhật thông tin bị lỗi");
			System.out.println("khong them dc");
			}
		}
		return "not_finish_themvitri";
	}

	
	
}
